import { createRouter, createWebHistory } from 'vue-router'

const pass = (token, topath) => {
  console.log(token)
  console.log(topath)
  return true
}

const routes = [
  // 将匹配所有内容并将其放在 `route.params.pathMatch` 下
  // 使用路由处理404问题
  // 1、打开404组件
  // 2、跳转到指定页面
  {
    path: '/:pathMatch(.*)*',
    // redirect: '/'
    name: 'NotFound',
    component: () => import('../views/NotFound.vue')
  },
  { path: '/home', redirect: '/' },
  { path: '/index', redirect: '/' },
  {
    path: '/',
    name: 'home',
    component: () => import('../views/HomeView.vue'),
    // 嵌套路由 /dept
    children: [
      {
        path: '/dept',
        name: 'dept',
        component: () => import('../components/admin/DeptPage.vue')
      },
      {
        path: '/dept/:deptno',
        name: 'dept_x',
        component: () => import('../components/admin/DeptPage.vue')
      },
      {
        path: '/dept/:deptno/:dname',
        name: 'dept_x_y',
        component: () => import('../components/admin/DeptPage.vue')
      },
      {
        path: '/emp',
        name: 'emp',
        component: () => import('../components/admin/EmpPage.vue')
      }
    ]
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('../views/LoginView.vue')
  },
  {
    path: '/reg',
    name: 'reg',

    component: () => import('../views/RegView.vue')
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (About.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import('../views/AboutView.vue')
  }
]

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
})

// 添加守卫
/**
 * 首次进入前端页面时，守卫就生效
 */

router.beforeEach((to) => {
  // if (
  //   // 检查用户是否已登录
  //   // !isAuthenticated &&
  //   // ❗️ 避免无限重定向
  //   to.name !== 'Login'
  // ) {
  //   // 将用户重定向到登录页面
  //   return { name: 'Login' }
  // }
  console.log(to.fullPath)
  // 如果是登录页、注册页或者是找回密码页等无法进行登录页面就直接放行
  if (to.name === 'login' || to.name === 'reg') return true
  else {
    // 判断是否已经登录
    const token = sessionStorage.getItem('token')
    // 甚至是可以二次校验Token，还应该包权限的校验（Token = uid， roleid， to.fullPath）
    if (pass(token, to.fullPath)) {
      // 如果通过校验，放行
      return true
    } else {
      // 否则一律进入登录界面
      if (to.name !== 'login') return { name: 'login' } //  push({  name: 'login'})
    }
  }

  // if (to.name !== 'login') return { name: 'login' }

  // console.log(from)
  // ...
  // 返回 false 以取消导航
  // 返回true ： 按既定路线行走，不受守卫影响
  // return true
})

export default router
